1. Field of the Invention
The invention provides for a system and method for manipulating digital image data capable of being displayed on a variety of digital display devices including flat panel displays. More particularly, the invention is a system and method for providing a variable character size in an on-screen display application.
2. Description of the Related Art
Current display systems include on-screen display (OSD) circuitry capable of displaying, on a predetermined portion of the display device, textual and/or graphic information overlaid on signals typically provided to the display device. Television sets, for example, often display channel numbers and/or closed captioning text over video signals associated with the displayed show. Computer monitors, for another example, often display brightness, contrast, or other display control information over running software applications, e.g., word processing, spreadsheet, drawing, and other applications.
OSD circuitry operates in either graphic or text mode. High-end display systems often implement OSD circuitry using the graphic mode. In the graphic mode, the OSD circuitry stores bitmaps in typically large memories. Bitmaps represent a graphic image using rows and columns of picture elements (pixels) stored in memory. The OSD circuitry provides the bitmap to the display.
The OSD circuitry stores the value of each pixel in one or more bits of data, e.g., 2 to 24 bits per pixel. The value of each pixel might represent luminance of the corresponding pixel. The more colors and shades of gray, the more bits the OSD circuitry uses to represent the value of the pixel. The OSD circuitry requires a larger bitmap memory the more bits it uses to represent the pixel. Consequently, the cost of the OSD circuitry increases proportionately to the number of bits used to represent the value of each bitmapped image pixel.
For example, assume the OSD circuitry wants to display a 512×200 bitmapped image in at least 16 colors (4 bits for each pixel) to an XGA (1024×768) resolution display device. In this example, the bitmap memory must be at least 50 Kbytes.(512×200 pixels)×(4 bits/pixel)×(1 byte/8 bits)=50 Kbytes
The bitmap memory increases to over 200 Kbytes if the OSD circuitry displays the same 512×200 bitmapped image in 256 colors (8 bits for each pixel).(512×200 pixels)×(16 bits/pixel)×(1 byte/8 bits)=200 Kbytes
Because of memory cost, low-end display systems implement OSD circuitry using the text mode. In the text mode, the OSD circuitry stores individual character codes in smaller character memory, e.g., random access memory, instead of storing graphic image bitmaps in large memories. The OSD circuitry uses the character codes to look up simple bitmaps of the individual characters in smaller font memory, typically implemented as either random access or read-only memories. These simple bitmaps include a single bit value for each pixel, the bit value indicating a foreground and a background color.
Many implementations of the text mode fix a height and width of the characters to be displayed. Even when the height and width is user programmable, it is identical for all characters within a displayed message or menu. An advantage to fixing the height and width is simplified controller design because a starting address of each character bitmap stored in a font memory is easily calculable.
A disadvantage is poor memory management since character bitmaps are often stored with unnecessary blank spaces. Referring to FIG. 1, the bitmap for some characters, e.g., the bitmap 102 for the letter “w,” requires maximization of width resulting in blank spaces 104 being added to the top and/or bottom of the bit map. The bitmap for other characters, e.g., the bitmap 108 for the letter “i” and/or the bitmap 110 for the letter “t” requires maximization of height resulting in black spaces 114 being added to the left and/or right of the bitmap. That is, the amount of memory space is independent of the footprint of the particular character. And the most complex character to be displayed typically defines the amount of memory space allotted per character.
Another disadvantage is that characters with widely varying footprints must be fit to particular height and width restrictions. Referring to FIGS. 1 and 2, the bitmaps 202, 204, and 206 for uppercase characters, e.g., the letters “P,” “O,” or “S”, might touch the sky line (upper height limitation) 208 while the bitmap 112 for lowercase characters, e.g., the letter “y”, might touch the ground line (lower height limitation) 116. This results in poor character quality since different characters might require different height and width restrictions to improve their display.
Accordingly, a need remains for a system and method for providing a variable character size an OSD application.